<?php
session_start();
include('include/config.php');
include('include/fonctions.php');
$messageErrMail = 'Page : oublie-pass.php<br />';
$msgErr = '';

//on récupère les info du form
if (isset($_POST['envoyer'])) {
    //on va tester que l'on a bien les deux infos pseudo et password
    if (isset($_POST['mail']) && !empty($_POST['mail']) && preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', $_POST['mail'])) {
        //on va sécuriser les variables pour la suite        
        $mail = secure($_POST['mail']);

        //on récupère l'id, le pseudo et le password en base
        $connection = connexionBdd();
        $select = $connection->prepare('SELECT `prof_id`, `prof_mail`, `prof_banni` FROM `prof` WHERE `prof_mail` = :mail');
        $select->setFetchMode(PDO::FETCH_OBJ);
        $select->bindParam(':mail', $mail, PDO::PARAM_STR);
        $select->execute();
        $countSelect = $select->rowCount();
        $enregistrement = $select->fetch();
        $select->closeCursor();

        if ($countSelect == 1) {
            //on va tester que le compte est validé, sinon on prend le temps de l'indiquer au client
            if ($enregistrement->prof_banni < 1) {
                if ($mail == $enregistrement->prof_mail) {
                    //on génère le nouveau password
                    $password = getCodeValidation(8);
                    //On insert en bdd le nouveau password
                    $connection = connexionBdd();
                    $updatePassword = $connection->prepare('UPDATE `prof` SET `prof_mdp` = :password WHERE `prof_id` = :id');
                    $updatePassword->bindValue(':password', sha1($password));
                    $updatePassword->bindValue(':id', $enregistrement->prof_id);
                    // On exécute
                    try {
                        $updatePassword->execute();
                        $updatePassword->closeCursor();
                    } catch (Exception $e) {
                        $msgErr = '<div class="error">Une erreur technique est venue perturbée le génération d\'un nouveau mot de passe. Notre équipe technique vient d\en être informée. Merci de renouveler votre opération ultérieurement.</div>';
                        $messageErrMail .= $e->getMessage();
                        error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
                    }

                    //on envoie un mail avec le nouveau password
                    $sujetMail = '[' . $nomSite . '] Nouveau mot de passe';
                    //=====Déclaration des messages au format texte et au format HTML.
                    $entete = "MIME-Version: 1.0\r\n";
                    $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
                    $entete .= "To: $mail";
                    $entete .= "From:$mailSite";
                    $entete .= "Reply-To: $mailSite \n"; // Adresse de retour le demandeur


                    $message_html = '<html><head></head><body>';
                    $message_html .= 'Bonjour,<br />';
                    $message_html .= 'nous venons de générer votre nouveau mot de passe pour le site ' . $nomSite . '<br /><br />';

                    $message_html .= 'Voici un rappel de vos codes d\'accès :<br />';                    
                    $message_html .= '<strong>Password</strong> : ' . $password . '<br /><br />';

                    $message_html .= 'N\'oubliez pas de conserver cet email, il pourra vous être utile.<br /><br />';

                    $message_html .= 'Pour toute autre précision, information, intervention, appréciation, suggestion, nous restons à votre écoute. N\'hésitez pas à nous contacter directement par le biais du site.<br />';
                    $message_html .= 'Nous vous remercions de la confiance et de l\'intérêt que vous nous portez.<br /><br />';
                    $message_html .= 'Cordialement,<br />L\'équipe ' . $nomSite;

                    $message_html .= '</body></html>';

                    //=====Envoi de l'e-mail.
                    try {
                        mail($mail, $sujetMail, $message_html, $entete);

                        //on ecrit un message pour signaler au client que la génération est ok
                        $msgErr = '<div class="success">La génération de votre nouveau mot de passe vient de vous être envoyé par mail.</div>';
                    } catch (Exception $e) {
                        $msgErr = '<div class="error"><p>Le site rencontre un soucis et nous ne pouvons vous envoyer l\'email contenant votre nouveau mot de passe.</p>
                                    <p>Si le problème persite, merci de nous le signaler.</p></div>';
                        $messageErrMail .= $e->getMessage();
                        error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
                    }
                } else {
                    $msgErr = '<div class="warning">Votre mail n\'est pas correct.</div>';
                }
            } else {
                switch ($enregistrement->prof_banni) {
                    case 1:
                        $msgErr = '<div class="error"><p>Votre compte n\'est pas validé.</p>
                                    <p>Veuillez regarder dans vos mails pour cliquer sur le lien de validation.</p></div>';
                        break;
                    case 2:
                        $msgErr = '<div class="error"><p>Votre compte est bloqué par un administrateur.</p>
                                    <p>Si vous ne comprenez pas pourquoi votre compte est bloqué, contactez nous.</p></div>';
                        break;
                    case 3:
                        $msgErr = '<div class="error"><p>Votre compte n\'a pas été validé dans les temps.</p>
                                    <p>Contactez nous si vous souhaitez à présent valider votre compte.</p></div>';
                        break;
                    default:
                        $msgErr = '<div class="error"><p>Il existe un soucis sur votre compte</p>
                                    <p>Notre équipe technique vient d\'en être informé. Une fois le soucis résolu, nous vous contacterons pour plus d\'informations.</p>
                                    <p>Nous vous remercions pour la confiance que vous nous apportez.</p></div>';
                        $messageErrMail .='Attention champs banni incohérent sur le membre : ' . $enregistrement->prof_id . '<br/>';
                        error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
                        break;
                }
            }
        } else {
            $msgErr = '<div class="error">"<em>' . $mail . '</em>" n\'est pas connu sur ' . $nomSite . '</div>';
            //si on trouve plus d'un pseudo on envoie un mail à l'admin pour le prévenir de se doublon théoriquement imposible
            if ($countSelect > 1) {
                $messageErrMail .='Attention doublon sur un mail : ' . $mail . '<br/>';
                error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
            }
        }
    } else {
        $msgErr = '<div class="warning">Merci de renseigner votre email, saisie lors de l\'inscription.</div>';
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//FR"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
    strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Home</title>
        <meta charset="utf-8" />            
        <meta name="description" content="Your description" />
        <meta name="keywords" content="Your keywords" />
        <meta name="author" content="Your name" />
        <link rel="icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="stylesheet" href="css/style.css" />
        <link rel="stylesheet" href="css/menu.css" />
        <link rel="stylesheet" href="css/form.css" />
    </head>
    <body>
        <!--==============================header=================================-->
        <?php
        require_once('include/menu.php');
        ?>

        <!--==============================content================================-->
        <div class="bg1">
            <div class="bg">
                <section id="content">
                    <div class="container_12"> 
                        <article class="grid_12">
                            <h1>Oublie de votre mot de passe</h1>                            
                            <p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem <strong>ipsum dolor</strong> sit amet, consetetur sadipscing elitr, sed <a href='#'>diam nonumy</a> eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus</p>                            
                        </article>                        
                        <article class='grid_8 prefix_2'>                            
                            <?php
                            echo $msgErr;
                            ?>
                            <form name="connexion" id="stylized" method="post" action="oublie-pass.php">                                                                    
                                    <label for="mail" class="label">E-mail :</label>
                                    <input type="text" name="mail" id="mail" class="input"/>
                                    <input type="submit" value="Générer un nouveau mot de passe" name="envoyer" class="bouton"/>                                                                   
                            </form>                            
                        </article>
                    </div>
                </section>

                <!--==============================footer=================================-->
                <?php
                require_once 'include/footer.php';
                ?>
            </div>
        </div>
    </body>
</html>